﻿using ComicBookApp.DataModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ComicBookApp.Data.DataAdapters.Interfaces
{
    public interface IComicBookAppAdapter
    {
        // Comic book CRUD
        ComicBook CreateComicBook(ComicBook comicBook);
        List<ComicBook> GetAllComicBooks();
        List<ComicBook> GetComicsForCreator(Creator creator);
        ComicBook GetComicBook(int id);
        ComicBook UpdateComicBook(ComicBook comicBook);
        ComicBook DeleteComicBook(int id);
        


        // Character CRUD
        Character CreateCharacter(Character character);
        List<Character> GetAllCharacters();
        Character GetCharacter(int id);
        List<Character> GetCharactersForComic(ComicBook comic);
        Character UpdateCharacter(Character character);
        Character DeleteCharacter(int id);


        // Creator CRUD
        Creator CreateCreator(Creator creator);
        List<Creator> GetAllCreators();
        Creator GetCreator(int id);
        List<Creator> GetCreatorsForComic(ComicBook comic);
        Creator UpdateCreator(Creator creator);
        Creator DeleteCreator(int id);
        Creator CheckForCreator(string name);

        // ComicBookCreator CRUD
        ComicBookCreator CreateComicBookCreator(ComicBookCreator comicCreator);
        void BreakComicBookCreatorLink(ComicBook comic, Creator creator);

    }
}
